由Excel字符串中的空格爆炸

时间:2019-03-26 10:32:38

标签: php

我尝试从excel的字符串中按空格爆炸

const AppStackNav = ({ currentGuests, possibleGuests }) => {
    const Stack = createStackNavigator({...});
    return <Stack />;
};

const mapStateToProps = ({ guests }) => {
    return {
        currentGuests: guests.current,
        possibleGuests: guests.possible
    };
  }

// react-navigation v2 is needed for this to work:
export default connect(mapStateToProps)(AppStackNav); 

但是它不起作用。这不是偶然的。这是另一回事。

示例-https://ideone.com/S7SEEE

如果bin2hex()

class App extends Component {
    constructor(props) {
        super(props);
    }

    addGuest = (index) => {
        // ...
    }

    render() {
        return (
            <Provider store={store}>
                <AppStackNav />
            </Provider>
        )
    }
}

export default App;

3 个答案:

答案 0 :(得分:3)

我认为最简单的解决方案是:

<?php

$string = 'RT 2';

print_r(preg_split('/\s+/u', $string));

您无需指定表示空格的具体unicode字符。 /u标志将其整个空格范围添加到\s字符类中。

答案 1 :(得分:2)

  

编辑:改用Karol Samborski的答案,添加u标志   将/s的范围更改为包括所有unicode空间。

您可以使用不间断空格的Unicode序列,该序列应为\x00A0(采用正则表达式格式),并将相应的/u(Unicode)标志添加到您的正则表达式中:

$string = 'RT 2';

print_r(preg_split('/[\s\x00A0]+/u', $string));

演示:https://3v4l.org/d7pld

答案 2 :(得分:2)

您的字符串中包含特殊空格,您始终可以使用dechex(ord());bin2hex()unpack()来调查字节。

52 54 c2 a0 32 
^... R      ^... 2
         ^... non-breaking space
   ^... T (2 bytes)

此正则表达式涵盖普通空格字符,不间断空格和窄空格字符:

/[\x202F\x00A0\s]/

\u用于正则表达式,将\x用于预匹配(与PCRE兼容)。