我试图与阿根廷的所有省份一起创建一个原子列表。由于一些由多个单词组成,我需要逃避空白。
~w[
Buenos\sAires
Capital\sfederal Catamarca Chaco Chubut Corrientes Córdoba
Entre\sRíos Formosa Jujuy La\sPampa La\sRioja Mendoza Misiones Neuquén
Río\sNegro Salta San\sJuan San\ Luis Santa\sCruz Santa\sFe
Santiago\sdel\sEstero Tierra\sdel\sFuego Tucumán
]a
我尝试使用sigil_w
和sigil_W
,使用经典转义序列\
和\s
,但它不起作用。
(26个省 - 1)*(2个引号(")+ 1个逗号(,)+ 1个可读空间("")) - 25个空格我会用到这个印记form = 75个字符我可以保存
我知道我可以使用自定义印记实现这一目标:
defmodule MySigil do
def sigil_X(string, []) do
string
|> String.split(~r/\s/)
|> Enum.map(&String.replace(&1, "\\s", " "))
end
end
import MySigil
~X[Buenos\sAires La\sPlata]
["Buenos Aires", "La Plata"]
...但是有更少的"自制"接近?
答案 0 :(得分:2)
不,这是不可能的。 sigil_w
模块中的sigil_W
和Kernel
call the private split_words
方法,which uses String.split
分割将始终在任何空格上拆分的字符串。
答案 1 :(得分:1)
虽然没有黑客攻击是不可能的,但周围有一个垃圾。将以下代码复制粘贴到~w|a b c|
#⇒ ["a b", "c"]
并执行它:
#include <QMainWindow>
class QGraphicsView;
class QGraphicsRectItem;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
bool eventFilter(QObject *watched, QEvent *event) override;
private:
QGraphicsView *m_view;
QGraphicsRectItem *m_item;
};
[ NB ,不幸的是,SO将原始符号转换为普通空间,因此复制粘贴不会开箱即用] 我能听到你的“哇?”:)
这是通过non-breakable space实现的。如果你对此感觉不错,那么只需使用nbsp就可以了。