删除字符串中特定子字符串之间的空格

时间:2017-12-01 16:50:26

标签: java android regex whitespace removing-whitespace

cWhats我想要的是删除public function getotherclothdetail($id) { $qry1 = "SELECT rentprice from cloth_table where id = '$id' "; $result2 = $this->fetch($qry1); $qry = "SELECT cloth_table.*, user_table.email from cloth_table, user_table WHERE cloth_table.owner_id = user_table.id And cloth_table.price = $result2[0]['rentprice'] "; $result = $this->fetch($qry); return $result; } 标记之间的所有空格并保留<abc>标记之间的空格

<efg>

我想要输出:

<abc>this is between abc</abc><efg>this is between efg</efg>
<efg>this is between efg</efg><abc>this is between abc</abc>

<abc>thisisbetweenabc</abc><efg>this is between efg</efg> <efg>this is between efg</efg><abc>thisisbetweenabc</abc> 它不适合我

2 个答案:

答案 0 :(得分:0)

我建议您使用XML parser !!! 无论如何,如果 a limited, known set of HTML ,您可以使用以下正则表达式(按照我原来的评论)。

注意:此解决方案适用于 有限已知 HTML集。如果您输入的内容与您在问题中发布的内容不同,则此解决方案很可能无效。请参阅Pshemo在您问题下方的评论。

注2 :OP改变了输入的格式,因此原来的答案将不再有效。请参阅下面的原始输入(正是为什么我把一个有限的已知的 HTML集)。在代码部分中,我添加了第二个正则表达式,它适用于OP新添加的输入。

代码

See regex in use here

(?:^(<abc>)|\G(?!^))(\S+)[ \t]*

替换为$1$2

使用新的输入格式,可以使用以下正则表达式(as seen in use here):

(?:^(<abc>)|\G(?!^))([^\s<]+)[ \t]*

结果

输入

<abc>this is between abc</abc>
<efg>this is between efg</efg>
<abc>this is between abc</abc>
<efg>this is between efg</efg>

输出

<abc>thisisbetweenabc</abc>
<efg>this is between efg</efg>
<abc>thisisbetweenabc</abc>
<efg>this is between efg</efg>

说明

  • (?:^(<abc>)|\G(?!^))匹配以下任一项
    • ^(<abc>)符合以下条件
      • ^在行首处断言位置
      • (<abc>)<abc>字面上捕获到捕获组1
    • \G(?!^)在上一场比赛结束时断言位置
  • (\S+)将任何非空白字符捕获一次或多次到捕获组2
  • [ \t]*多次匹配空格或制表符

答案 1 :(得分:0)

简单就行

xml = my overall string with <abc> and </abc> stuff
start = xml.indexOf('<abc>')
end = xml.indexOf('</abc>')
totalCharsToInclude = end - start (get the length to run from start)

abcOnly = xml.subString(start, totalCharsToInclude), 
abcOnly = abcOnly.replace(" ", "")

这是所有pseduo代码,但您可以轻松模仿它。您可能还需要使用加号或减号来调整索引,我不在您的代码前面进行测试,但您应该能够从中获得所需的内容。

免责声明:使用XML解析器是更好的方法来处理这个,然后操纵字符串,但我会假设你有你的理由,所以我会回答你问的问题,而不是告诉你去获取XML解析器大声笑。祝你好运。