Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使用regexp替换";“t e x t”;由「;文本“;?_Ruby_Regex - Fatal编程技术网

Ruby 如何使用regexp替换";“t e x t”;由「;文本“;?

Ruby 如何使用regexp替换";“t e x t”;由「;文本“;?,ruby,regex,Ruby,Regex,我需要用“我爱ruby regexp”替换所有字符串,如“I love r u b y regexp” (将单个字母组合成一个单词) 你会怎么做?像这样的事情 /(\b\w\b)\s+(?=\b\w\b)/\1/g (我不做Ruby,但这可能会转化为: "i love r u b y regexp".gsub(/(\b\w\b)\s+(?=\b\w\b)/, "\\1") 网上版本: 如果您只想删除单个字母后的单个空格,则以下内容可能是您想要的: (/\b\w\b\s)(?=(?:\s+|\

我需要用“我爱ruby regexp”替换所有字符串,如“I love r u b y regexp”

(将单个字母组合成一个单词)

你会怎么做?

像这样的事情

/(\b\w\b)\s+(?=\b\w\b)/\1/g
(我不做Ruby,但这可能会转化为:

"i love r u b y regexp".gsub(/(\b\w\b)\s+(?=\b\w\b)/, "\\1")
网上版本:

如果您只想删除单个字母后的单个空格,则以下内容可能是您想要的:

(/\b\w\b\s)(?=(?:\s+|\b\w\b))/

你能更正式地解释一下你需要什么吗?例如,你需要合并“r u b y”吗或者所有的单词都是这样分割的?你试过什么了?你的代码有什么问题吗?一个简单的启发式方法对你的示例字符串有效,就是用一个由这些字母组成的单词替换所有连续出现的单个字母。我会让其他人用Ruby来表达。是的,我们需要更多的细节,比如你知道w是什么吗你需要查找的单词?或者你想要一个通用的东西来查找用空格括起来的单词。如果是这样的话,那将是非常非常困难的,因为你需要做一些字典搜索。例如,你怎么知道一个“a”在一个词的中间,或者如果它是一个不确定的文章?我的问题是通用的:给出一个句子如何将单个字母分组成一个单词注释,该解决方案必须将具有下列单个字母的单个字母分组,否则你会遇到一个问题,比如“ILoFuby Ruby ReExp”(第一个也是一个字母……)对!如果您只想删除单个空格,则应该是
\s+
。或
\s
;但是如果后跟移动空格,则不会删除单个字母后的空格,除非执行
(\b\w\b\s)(?=(?:\s+\b\w\b))
。这不是一个真正的解决方案。例如,如果行是
,如果你有一个a,i t将不起作用
,我也不喜欢答案
它将不起作用。@Mike-你很快就否决了答案,不是吗?这是OP问题的解决方案。除了使用英语词典,当然不能区分一个字母words,例如“a”或“I”。使用正则表达式肯定是不可能的。原始问题没有提到任何特定的语言。除非我没有投反对票。你很快就因为投反对票而责怪别人。我想知道你是否也很快道歉。。。