Ruby 获取不带连字符的文本-水豚

Ruby 获取不带连字符的文本-水豚,ruby,selenium,selenium-webdriver,capybara,Ruby,Selenium,Selenium Webdriver,Capybara,我有一个表行元素 <th scope="row" class="u-printHyphensManual row"> Advan­&shy;taged </th> 阿德万­­;标记 如何在没有连字符的情况下获取文本?i、 eelem.text返回“Advantage”而不是“Advantage” 我正在使用水豚。将find('th')。text更改为find('th')。text.gsub(/[^A-za-z]/,'') 这在这

我有一个表行元素

<th scope="row" class="u-printHyphensManual row">
            Advan­&shy;taged
</th>

阿德万­­;标记
如何在没有连字符的情况下获取文本?i、 e
elem.text
返回
“Advantage”
而不是
“Advantage”

我正在使用水豚。

find('th')。text
更改为
find('th')。text.gsub(/[^A-za-z]/,'')


这在这种情况下是有效的,但取决于您真正试图解决的一般问题,这可能会产生意外的后果。

您可以通过输入代码并使用string.encode将Unicode字符放入字符串中,也可以直接将代码放入正则表达式中。软连字符的Unicode是\u00AD

text.gsub('\u00AD'.encode('utf-8'),'')

text.gsub(/\u00AD/,“”)

如果不起作用,请尝试替换literal
­


text.gsub(“­;”,”)

这一点尚不清楚。你想剥离所有HTML实体吗?不,我只是想在Capybara中获取节点文本。这就是find('th')。text,但是它返回带连字符的文本,我希望不带连字符。正在寻找一种在查找时对文本进行规范化的方法。请描述您想要执行的“规范化”。它不起作用,因为它不是字符串。我也尝试过gsub,但您必须指定要保留的文本。水豚是解析实体还是得到文字'&','s','h','y',';'?