为什么下面的正则表达式不工作?
(?<name>[^\s]+?)\w?=\w?(?<value>[^\s]+?);
https://regex101.com/r/q7NTdS/1
我有一个字符串:
a = 2.234;
b = Hello;
random text...
c =2;
而且我想提取"a"、"b"和"c"(不带空格)以及它们的值"2. 234"、"Hello"和"2",我应该做什么修改?
为什么下面的正则表达式不工作?
(?<name>[^\s]+?)\w?=\w?(?<value>[^\s]+?);
https://regex101.com/r/q7NTdS/1
我有一个字符串:
a = 2.234;
b = Hello;
random text...
c =2;
而且我想提取"a"、"b"和"c"(不带空格)以及它们的值"2. 234"、"Hello"和"2",我应该做什么修改?
2条答案
按热度按时间o7jaxewo1#
\w
匹配不包含空格的任何单词字符。请尝试使用匹配任何类型的不可见字符的\s
。(?<name>[^\s]+?)\s?=\s?(?<value>[^\s]+?);
- @regex101。qzlgjiam2#
让我们定义一下
name
和value
是什么。名称必须 * 以字母开头, 可以 * 包含字母、数字或
_
value可以包含任何符号,但不能以白色开头或结尾
name
和value
* 必须 * 用=
和可选白色分隔。整个字符串 * 必须 * 以
;
和白色结尾则图案可以是
Fiddle