我需要一些关于正则表达式的帮助。如果字符在分号之后并且在前一个单词的同一行中,我需要一个与字符匹配的正则表达式。
让我解释一下:
我需要这样的东西。我必须创建一个不允许在同一行的分号后引入字符的函数,我想我可以用这种 RegEx 来做到这一点。
谢谢你。
我需要一些关于正则表达式的帮助。如果字符在分号之后并且在前一个单词的同一行中,我需要一个与字符匹配的正则表达式。
让我解释一下:
我需要这样的东西。我必须创建一个不允许在同一行的分号后引入字符的函数,我想我可以用这种 RegEx 来做到这一点。
谢谢你。
我不确定我是否理解你的问题,但这样的事情会有所帮助吗? 这个正则表达式
好吧,你有两种方法可以做到:
A : 创建一个正则表达式来验证正确的输入。
B:创建一个正则表达式来查找不正确的输入。
我会使用选项 1,但这取决于您需要做什么。
在这种情况下,我们将使用m
修饰符将正则表达式引擎设置为按行搜索(m = 多行)。这意味着^
匹配一行的开头并$
匹配一行的结尾。
然后我们要匹配一些不是分号本身的字符。为此,我们使用[^ ]
组,意思是“不在提供的字符列表中的任何内容”。所以说除了分号之外的任何字符,我们都必须使用[^;]
.
现在,这个字符并不孤单,因为它们可能很多。为此,我们可以使用*
或+
运算符分别表示“0 次或多次”和“1 次或多次”。如果分号之前的数据是强制性的,那么我们将使用+
运算符。这导致[^;]+
说任何不是分号的字符 1 次或更多次。
然后我们将与()
操作员一起捕捉这一点。这将让我们可以直接访问该值,而不必自己取行并删除带有截断的分号。
在此捕获之后,我们有分号,然后可能有一些空格,然后是行尾。对于后面的空间,这取决于你。可以\s*
说任何类型的空格、制表符或空白字符 0 或 n 次。
最后我们得到这个正则表达式:^([^;]+);\s*$
带有m
和g
标志
m
对于多行和g
全局,这意味着不要在第一场比赛中停下来,而是寻找所有比赛。
在这里测试它:https ://regex101.com/r/sT59eu/1/
好吧,这也很容易:;.+$
.
表示任何字符。所以在这里我们会找到分号后面有东西的行。
在这里测试它:https ://regex101.com/r/ocDofm/1/
但是你不会找到缺少分号的行!
如果我理解正确, (?<=;)[A-Za-z]+ 可能会完成您的工作。python 文档很有帮助:https ://docs.python.org/3/library/re.html