匹配同一行中分号后字符的正则表达式

RegEx that matches characters after semicolon in the same line

我需要一些有关正则表达式的帮助。我需要一个与字符匹配的正则表达式,如果它们在分号之后并且在前一个单词的同一行中。

让我解释一下:

我需要这样的东西。我必须创建一个 不允许在同一行的分号后引入字符的函数 ,我想我可以用这种 RegEx 来完成。

谢谢。

我不确定我是否理解您的问题,但这样的事情会有帮助吗? This regular expression

如果我没理解错的话 (?<=;)[A-Za-z]+ 可能会做你的工作。 python 文档很有帮助:https://docs.python.org/3/library/re.html

好吧,你有两种方法可以做到:

  • A: 创建一个正则表达式来验证正确的输入。

  • B: 创建一个正则表达式来查找不正确的输入。

我会使用选项 1,但这取决于您需要做什么。

A:用于验证正确行的正则表达式

在这种情况下,我们将使用 m 修饰符将正则表达式引擎设置为按行搜索(m = 多行)。这意味着 ^ 匹配行的开头,而 $ 匹配行的结尾。

然后我们要匹配一些不是分号本身的字符。为此,我们使用 [^ ] 组,意思是“不在提供的字符列表中的任何内容”。所以要说除分号之外的任何字符,我们必须使用 [^;].

现在,这个 char 并不孤单,因为他们可能是很多人。为此,我们可以使用 *+ 运算符,它们分别表示“0 次或多次”和“1 次或多次”。如果分号前的数据是必需的,那么我们将使用 + 运算符。这导致 [^;]+ 说任何不是分号的字符 1 次或多次。

然后我们将使用 () 运算符捕获它。这将使我们能够直接访问该值,而无需自行截断并删除分号。

在这次捕获之后,我们有分号,然后可能有一些空的 spaces 或没有,然后是行尾。之后的 space 秒,由您决定。说任何类型的 space、制表符或空白字符 0 次或 n 次都是 \s*

最后我们得到这个正则表达式:^([^;]+);\s*$ 带有 mg 标志

m 用于多行,g 用于全局,这意味着不要在第一个匹配项处停止,而是查找所有匹配项。

在这里测试:https://regex101.com/r/sT59eu/1/

B:查找无效行的正则表达式

好吧,这也很简单:;.+$

. 表示任何字符。所以在这里我们会找到分号后面有东西的行。

在这里测试:https://regex101.com/r/ocDofm/1/

但是您不会找到缺少分号的行!