首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果包含非数字字符,则用引号包装捕获组?

如果包含非数字字符,则用引号包装捕获组?
EN

Stack Overflow用户
提问于 2022-09-12 09:44:26
回答 1查看 38关注 0票数 -3

在使用regex时,我似乎找不到任何关于如何用引号包装结果捕获组的答案。

如果我拿到这个

Abcd abcd 12345

Abcd 1234 12345

我想要这个:

"Abcd" "abcd" 12345

或者这个:

"Abcd" 1234 12345

我怎么能做这样的事

"$1" (?$2=[^0-9] \"$2\" | $2)在替换输入中?

或者换句话说:我需要检查捕获组的结果(匹配的结果)是否是一种或另一种类型,然后用引号换行。

读为:“如果捕获组包含非数字字符,则用用引号包装的值替换它,否则替换为数字”。

我似乎无法弄清楚如何在结果输入中进行实际的IF /然后操作,也无法理解它在reg本身中的工作方式(这里缺少一张思维图)。

更多信息:

我有这两个变体(请注意不同的第二组):

string-digits digits digits datetime datetime string string digits-digits string

string-digits string-digits-whitespace digits datetime datetime string string string-digits string

到目前为止,我正在尝试使用这个正则表达式:

(.+) (THIS IS THE TRICKY PART) ([0-9]+) ([0-9]+/[0-9]+/[0-9]+ [0-9]+:[0-9]+) [0-9]+/[0-9]+/[0-9]+ [0-9]+:[0-9]+ (.+) (.+) (.+-[0-9]+) (.+)

我需要创建这个:

代码语言:javascript
复制
{
    "unique-key" : "$1",
    "unique-key" : $2,      <-- this second capture group should be wrapped in quotes if the value is not an integer.
    "unique-key" : $3,
    "unique-key" : "$4",
    "unique-key" : "$5",
    "unique-key" : "$6",
    "unique-key" : "$6",
    "unique-key" : "$7",
    "unique-key" : "$8"
}
EN

回答 1

Stack Overflow用户

发布于 2022-09-12 09:59:37

如果我正确理解的话--数字应该保持不变。因此,只有包含非数字字符的单词应该用引号包围.

然后,模式看起来可能如下:

代码语言:javascript
复制
([^\s]*[^\d\s]+[^\s]*)

与此模式匹配的内容应替换为"$1“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73687319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档