Regex 用于选择模板化单词的正则表达式
我想使用正则表达式查找Regex 用于选择模板化单词的正则表达式,regex,Regex,我想使用正则表达式查找{}中包含的所有单词 如果我的字符串是,“投保地址{Address}对{Name}无效” 我只想取出“地址”和“姓名”。我已经试了几个小时,但没有成功 非常感谢您的帮助 我试过([/{]([a-zA-Z0-9]*)[}]) 这是行不通的 我用的是C#。模板还可以包含点符号属性,如“Address.city”和“ABC.PQR.XYZ” /\{([a-z0-9]+)\}/i 我不知道您使用的是什么语言,但是大括号内的单词将被捕获到第一个子匹配组中 例如,使用Ruby: st
{}
中包含的所有单词
如果我的字符串是,“投保地址{Address}对{Name}无效”
我只想取出“地址”
和“姓名”
。我已经试了几个小时,但没有成功
非常感谢您的帮助
我试过([/{]([a-zA-Z0-9]*)[}])
这是行不通的
我用的是C#。模板还可以包含点符号属性,如“Address.city”和“ABC.PQR.XYZ”
/\{([a-z0-9]+)\}/i
我不知道您使用的是什么语言,但是大括号内的单词将被捕获到第一个子匹配组中
例如,使用Ruby:
str = 'The Insured Addr {Address} is not valid for {Name}'
matches = str.scan(/\{([a-z0-9]+)\}/i).flatten
# => ['Address', 'Name']
我不知道您使用的是什么语言,但是大括号内的单词将被捕获到第一个子匹配组中
例如,使用Ruby:
str = 'The Insured Addr {Address} is not valid for {Name}'
matches = str.scan(/\{([a-z0-9]+)\}/i).flatten
# => ['Address', 'Name']
\{(.*?\}
*?
而不是*
是为了懒散,不捕捉{Address}对于作为一个长单元的{Name}
无效。请参见“懒惰而不是贪婪”下的内容
*?
而不是*
是为了懒散,不捕捉{Address}对于作为一个长单元的{Name}
无效。请参见“懒惰而不是贪婪”下的内容
印刷品
Address
Name
在控制台上
>>> import re
>>> s = 'The Insured Addr {Address} is not valid for {Name}'
>>> re.findall('\{([a-zA-Z0-9 ]+)\}', s)
['Address', 'Name']
印刷品
Address
Name
在控制台上。正则表达式:
>>> import re
>>> s = 'The Insured Addr {Address} is not valid for {Name}'
>>> re.findall('\{([a-zA-Z0-9 ]+)\}', s)
['Address', 'Name']
\{([^}]*)}
将同时匹配'{Address}'
和'{Name}'
,并将在匹配组1中捕获'Address'
和'Name'
。因为[^}]
也匹配换行符,所以如果{
和}
在不同的行上(与*?
不同),它也会工作。正则表达式:
\{([^}]*)}
将同时匹配'{Address}'
和'{Name}'
,并将在匹配组1中捕获'Address'
和'Name'
。因为[^}]
也匹配换行符,所以如果{
和}
位于不同的行上(而*?
则不是这样)
这将获得大括号内的任何内容,甚至多个单词
如果您希望可能有空白填充,可以使用:
/{\s*([\S+]+?)\s*}/
这意味着{Address}和{Address}返回相同的内容。在这个版本中,标记中不允许有其他空格,但是您可以很容易地使用(+++)。这个意味着它将在两个最近的大括号内找到一个单词
这将获得大括号内的任何内容,甚至多个单词
如果您希望可能有空白填充,可以使用:
/{\s*([\S+]+?)\s*}/
这意味着{Address}和{Address}返回相同的内容。在这个版本中,标记中不允许有其他空格,但是您可以很容易地使用(+++)。这个这意味着它将在两个最近的大括号内找到一个单词。{([^}]*)将抓住第一个。{([^}]*)将抓住第一个。因为
[a-zA-Z0-9]
不匹配}
,所以不需要懒惰。因为[a-zA-Z0-9]
不匹配,,不需要懒惰。可能是打字错误:[a-zA-z]
应该是[a-zA-z]
。可能是打字错误:[a-zA-z]
应该是[a-zA-z]
。Yogendra,我假设这些{…}
标签的内部文本不能包含字符{/code>和
,对吗?是的,巴特,它们不能包含那些字符。Yogendra,我假设这些{…}
标记的内部文本不能包含{
和}
,对吗?是的,巴特,它们不能包含那些字符。这就解决了问题。如果我有Name.FirstName或类似Address.City.zip的名称,则无法解决此问题。如果我有Name.FirstName或类似Address.City.Zip的内容,它将不起作用