regex - RegEx 表达式中的字符失败

标签 regex

我有一个有效的表达式,但我希望它在看到 ; 时失败。除第一个字符以外的任何位置。它适用于(根据需要)

; Person1: Role1,

但它也适用于(不需要)

; Person1: Role1; Person2: Role2,

因此,尝试找出如何修改以下表达式,使其在第一个字符后的分号上失败(实际上分号只能在第三组中找到):

 (^|; )(.+?:)(.+?)(,)

抱歉,我不知道味道。用法是在音乐标记程序的插件中。

最佳答案

如果您不想允许使用分号,请告诉正则表达式引擎:

^;?\s*([^;:]+):\s*([^,;]+),$

说明:

^        # Start of string
;?\s*    # Match optional ; and optional whitespace
([^;:]+) # Capture one or more characters except ; and : in group 1
:\s*     # Match : and optional whitespace
([^,;]+) # Capture one or more characters except , and ; in group 2
,        # Match ,
$        # End of string 

关于regex - RegEx 表达式中的字符失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22131453/

相关文章:

java - 通过java正则表达式拆分

regex - 如何更正我的 htaccess 以代理搜索引擎抓取请求?

java - 在 Java 中用 '\' 替换单个 '\\'

css - 尝试从正则表达式结果中删除十六进制代码

Javascript 正则表达式匹配空字符串、非数字字符或超过 1 位的数字?

javascript - 用于在单词级别检查电话号码的表达式正则

Python 正则表达式 url 抓取

regex - Notepad++中特定长度搜索的通配符

java - 这是正确的模式吗?

python - 快速 Python 正则表达式问题 : Matching negated sets of characters